/*
*使用stack对象处理带圆括号的表达式。遇到左圆括号时，将其标记下来。然后在遇到右圆括号时，弹出stack对象中这两边括号之间的相关元素（包括左圆括号）。
*接着在stack对象中压入一个值，用以表明这个用一对圆括号括起来的表达式已经被替换。
*/
#include <iostream>
#include <string>
#include <stack>
using namespace std;

int main()
{
	string exp;
	cin >> exp;
	stack<char> expSta;
	for(string::iterator iter = exp.begin();iter != exp.end();iter++)
	{
		if(*iter == ')')
		{
			while(true)
			{
				if(expSta.empty())
				{
					cout << "表达式无效！" << endl;
					break;
				}
				if(expSta.top() == '(')
				{
					expSta.pop();
					expSta.push('*');
					break;
				}
				expSta.pop();
			}
		}
		else
		{
				expSta.push(*iter);	
		}
	}

	while(!expSta.empty())
	{
		cout << expSta.top();
		expSta.pop();
	}

	cout << endl;
	system("pause");
	return 0;
}

